The increased processing power that becomes available with each new generation of personal computers provides users with greater opportunities to accomplish a variety of different tasks. Users are no longer confined to performing a single task at a time on their personal computers. Rather, multitasking has become a common manner of operating a computer for many users. Such multitasking may occur within a single application program, e.g., a user might have several documents open within a word processing or graphics program, and/or across multiple applications. For instance, the user could open a web browser to access one or more web sites on the Internet, while at the same time running an electronic mail program to read messages and a word processing program to paste the content of the messages or web sites into one or more documents.
In graphical user interfaces which employ windows to present data to users, each task that is being performed by the user may have one or more windows associated with it. For example, each document that is open in a word processing program will have its contents displayed in a separate window. In addition, various functions performed by the program, such as spell checking, print spooling and the like may each have one or more secondary windows associated with them, to provide status information and/or user input. Similarly, every other application program that is running on the computer presents one or more windows to the user. For instance, if a browser is employed to access a number of different types of web sites, e.g., an http site, an ftp site and a news site, the contents of each site might be respectively presented in three different windows.
It can be appreciated that, as multiple tasks are performed on the computer at one time, the number of windows that are simultaneously displayed can become significant. For the inexperienced user, multiple open windows can be a source of frustration or confusion. For instance, a window of interest may become completely overlaid by other, later-accessed windows, thereby blocking it from view. The user may not know how to navigate to the desired window without closing all of the windows that overlie it, which may not be consistent with the operation intended by the user. Even for the more experienced user, a large number of open windows may present a cluttered interface which detracts from the overall computing experience.